An information processing system manages resources that have been prepared in advance, as resource pools, so as to ensure processing flexibility. Then, the information processing system extracts and uses a resource from the resource pools according to an operation policy of the information processing system.
As a resource of a management target, there is an input/output device located in a network (for example, refer to Japanese Unexamined Patent Application Publication No. 2008-078887 (hereinafter, referred to as Patent Literature 1)).
An example of such a technique of using IO devices through a network is ExpEther (registered trademark). “ExpEther” is a technique that extends a PCI Express (registered trademark) bus over a network using Ethernet (registered trademark). Use of ExpEther enables an information processing system to use an IO device with a PCI Express interface through Ethernet.
Hereinafter, “ExpEther” will occasionally be abbreviated as “EE.”
ExpEther uses an EE Host engine and an EE IO engine so as to connect PCI Express to Ethernet.
The EE IO engine is a processing entity for executing processing for an input/output device (IO device). The EE IO engine includes hardware (for example, a custom Large Scale Integration circuit (LSI) or a dedicated LSI) for connecting PCI Express to Ethernet. It is noted that the IO device that is connected to the EE IO engine is referred to as an EE IO engine-controlled IO device.
Further, the EE Host engine is a processing entity for executing processing for a host. The EE Host engine includes, in the same way as the EE IO engine, hardware (for example, a custom LSI) for connecting PCI Express to Ethernet.
Further, ExpEther allocates an identifier to the IO device that is connected to the EE IO engine (an EE IO engine-controlled IO device).
In the following description, it is supposed that ExpEther uses a Virtual Local Area Network (VLAN) as a virtual network for a connection between a host and an IO device. Thus, such an identifier is also referred to as “VLAN ID (identifier).”
Further, ExpEther also allocates an identifier (VLAN ID) to an EE Host engine.
Then, the EE IO engine connects with the EE Host engine with the same identifier (VLAN ID) as the identifier (VLAN ID) of the IO device that is connected to the EE IO engine (controlled IO device). In the following description, the EE IO engine is also referred to as having the identifier of the controlled IO device.
FIG. 4 is a block diagram illustrating an example of the configuration of the information processing system 40 which includes EE Host engines and EE IO engines.
The information processing system 40 shown in FIG. 4 includes two VLANs that are connected to each other via an L2 switch 470. In other words, the information processing system 40 includes two connections.
The L2 switch 470 is a switch on Layer 2 (L2) of the network layer. The L2 switch 470 is, for example, a network switch using Ethernet.
The first VLAN (VLAN ID=#0) includes a Central Processing Unit (CPU) 410, a root complex 420, and an EE Host engine 430. The first VLAN further includes an EE IO engine 440 and an IO device 460.
The second VLAN (VLAN ID=#1) includes a CPU 411, a root complex 421, and an EE Host engine 431. The second VLAN further includes an EE IO engine 441 and an IO device 461.
The CPU 410 is, for example, a processing unit that is embedded in a server which is not shown. The CPU 410 executes processing that uses an IO device 460 based on a program stored in a storage device which is not shown. That is, the CPU 410 executes processing as a host.
The root complex 420 is a controller that processes the foundation (root) of the PCI Express. The CPU 410 connects with the PCI Express through the root complex 420.
The EE Host engine 430 expands PCI Express over Ethernet. That is, the EE Host engine 430 connects with the EE IO engine 440 via the L2 switch 470.
The EE IO engine 440 connects with the EE Host engine 430 via the L2 switch 470. Thus, the EE IO engine 440 extends the connection destination of the IO device 460 to the L2 switch 470.
The IO device 460 is a typical input/output device. The IO device 460 includes, for example, a PCI Express interface.
On the basis of such a configuration, the information processing system 40 realizes a connection between the CPU 410 and the IO device 460 via the L2 switch 470.
The CPU 411, the root complex 421, and the EE Host engine 431 operate in the same way as the CPU 410, the root complex 420, and the EE Host engine 430, respectively. Further, the EE IO engine 441 and the IO device 461 operate in the same way as the EE IO engine 440 and the IO device 460 respectively. As the result, the information processing system 40 realizes a connection between the CPU 411 and the IO device 461 via the L2 switch 470.
The EE Host engine 430 and the IO device 460 shown in FIG. 4 have VLAN ID=#0 as an identifier. Likewise, the EE Host engine 431 and the IO device 461 have VLAN ID=#1 as an identifier.
Therefore, the EE Host engine 430 connects with the EE IO Engine 440 that is connected with the IO device 460, while not connecting with the EE IO engine 441 that is connected with the IO device 461. On the other hand, the EE Host engine 431 connects with the EE IO Engine 441 that is connected with the IO device 461, while not connecting with the EE IO engine 440 that is connected with the IO device 460. As the result, the CPU 410 and the CPU 411 independently connect with the IO device 460 and IO device 461 respectively.
It is supposed that the CPU 410 uses a plurality of IO devices 460. In such a case, the information processing system 40 is required to provide an EE IO engine 440 for each IO device 460. That is, when increasing the number of IO devices 460, the technique described in Patent Literature 1 requires EE IO engines 440 corresponding to the respective IO devices 460.
However, PCI express can use a PCI Express switch (hereinafter, referred to as PCIe switch) as a device for expanding the number of ports.
FIG. 5 is a block diagram illustrating an example of the configuration of an information processing system 41 which includes PCIe switches, EE Host engines, and EE IO engines.
In FIG. 5, the PCIe switch 450 connects the EE IO engine 440 with two IO devices 460. In the same way, the PCIe switch 451 connects the EE IO engine 441 with two IO devices 461. As the result, the CPU 410 can connect with two IO devices 460 using one EE IO engine 440. Likewise, the CPU 411 can connect with two IO devices 461 using one EE IO engine 441.